<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>My Project: kernel_container Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">My Project
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="classkernel__container-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">kernel_container Class Reference</div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:aaa8403088c93fca461e37158069d91b5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaa8403088c93fca461e37158069d91b5"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>buffer</b> = RingBuffer&lt; <a class="el" href="structsched__cmd__t.html">sched_cmd_t</a>, Type::RingBufferType::Heap, false &gt;</td></tr>
<tr class="separator:aaa8403088c93fca461e37158069d91b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a273d59eff9b9e269f1f9b231abc37b83"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkernel__container.html#a273d59eff9b9e269f1f9b231abc37b83">kernel_container</a> ()</td></tr>
<tr class="separator:a273d59eff9b9e269f1f9b231abc37b83"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d97cddd3d2f015166485afad9c71ff5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkernel__container.html#a6d97cddd3d2f015166485afad9c71ff5">kernel_container</a> (const std::size_t N)</td></tr>
<tr class="separator:a6d97cddd3d2f015166485afad9c71ff5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acec164e3f4c6f37f4791c90c24514b34"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkernel__container.html#acec164e3f4c6f37f4791c90c24514b34">~kernel_container</a> ()</td></tr>
<tr class="separator:acec164e3f4c6f37f4791c90c24514b34"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abcbec3854917b37bd6421b6b8ed2c2c0"><td class="memItemLeft" align="right" valign="top">buffer &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkernel__container.html#abcbec3854917b37bd6421b6b8ed2c2c0">getInputQueue</a> ()</td></tr>
<tr class="separator:abcbec3854917b37bd6421b6b8ed2c2c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a64384e258fee9b664d164eb50baf33df"><td class="memItemLeft" align="right" valign="top">buffer &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkernel__container.html#a64384e258fee9b664d164eb50baf33df">getOutputQueue</a> ()</td></tr>
<tr class="separator:a64384e258fee9b664d164eb50baf33df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a358a15b772f1b7dfa57bd733fc78fcaa"><td class="memItemLeft" align="right" valign="top">std::size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkernel__container.html#a358a15b772f1b7dfa57bd733fc78fcaa">size</a> ()</td></tr>
<tr class="separator:a358a15b772f1b7dfa57bd733fc78fcaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a89f9b11119d9ab0e8c64215bf50856f0"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkernel__container.html#a89f9b11119d9ab0e8c64215bf50856f0">container_run</a> (<a class="el" href="classkernel__container.html">kernel_container</a> &amp;container)</td></tr>
<tr class="separator:a89f9b11119d9ab0e8c64215bf50856f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a273d59eff9b9e269f1f9b231abc37b83"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">kernel_container::kernel_container </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p><a class="el" href="classkernel__container.html">kernel_container</a> - default constructor, initializes all above pointers.</p>
<p>kernelcontainer.cpp - </p><dl class="section author"><dt>Author</dt><dd>: Jonathan Beard </dd></dl>
<dl class="section version"><dt>Version</dt><dd>: Sun Mar 22 09:13:32 2015</dd></dl>
<p>Copyright 2015 Jonathan Beard</p>
<p>Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:</p>
<p><a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a></p>
<p>Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. </p>

</div>
</div>
<a class="anchor" id="a6d97cddd3d2f015166485afad9c71ff5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">kernel_container::kernel_container </td>
          <td>(</td>
          <td class="paramtype">const std::size_t&#160;</td>
          <td class="paramname"><em>N</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p><a class="el" href="classkernel__container.html">kernel_container</a> - constructor, initializes all above pointers. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">N</td><td>- const std::size_t, default size of buffer </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="acec164e3f4c6f37f4791c90c24514b34"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">kernel_container::~kernel_container </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>default destructor, cleans up all pointers </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a89f9b11119d9ab0e8c64215bf50856f0"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void kernel_container::container_run </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classkernel__container.html">kernel_container</a> &amp;&#160;</td>
          <td class="paramname"><em>container</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>container_run - function to be used by a thread which is called until the appropriate signal is sent (defined in <a class="el" href="sched__cmd__t_8hpp_source.html">sched_cmd_t.hpp</a>. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">container</td><td>- <a class="el" href="classkernel__container.html">kernel_container</a>&amp; </td></tr>
  </table>
  </dd>
</dl>
<p>clean-up buffer and recycle head of FIFO</p>
<p>just in case, a sanity check here</p>
<p>try these kernels again</p>
<p>after this it'll longjmp to the running state </p>

</div>
</div>
<a class="anchor" id="abcbec3854917b37bd6421b6b8ed2c2c0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">kernel_container::buffer &amp; kernel_container::getInputQueue </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>getInput - get input FIFO </p><dl class="section return"><dt>Returns</dt><dd>buffer&amp; </dd></dl>

</div>
</div>
<a class="anchor" id="a64384e258fee9b664d164eb50baf33df"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">kernel_container::buffer &amp; kernel_container::getOutputQueue </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>getOutputQueue </p><dl class="section return"><dt>Returns</dt><dd>buffer&amp; </dd></dl>

</div>
</div>
<a class="anchor" id="a358a15b772f1b7dfa57bd733fc78fcaa"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::size_t kernel_container::size </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>size - returns the number of items currently scheduled for this container. </p><dl class="section return"><dt>Returns</dt><dd>std::size_t, number of items </dd></dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="kernelcontainer_8hpp_source.html">kernelcontainer.hpp</a></li>
<li>kernelcontainer.cpp</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>
